Dynomotion

Group: DynoMotion Message: 14642 From: Hardy Family Date: 4/25/2017
Subject: Re: Proper way to determine when Move() starts to decelerate. [1 Att
I think that should do the trick.  Granted, a short move will not get to a constant velocity section, but if it ever gets to the 5th trip state (-ve jerk in your list above) then it must have got to the end of any CV section.  If there's less than 7 trip states then, in our application, it doesn't really matter if the motion completes before triggering the redirection.

So maybe the way we could code this (using your function) is simply:

  if (GetTripState(0) >= 4 && GetTripState(1) >= 4)
       Move(0, next_x), Move(1, next_y);

I'll give it a try, thanks.  (PS: I have tried the distance-to-go test before, but this seems a bit more elegant in that it doesn't need any magic numbers).

Regards,
SJH



On Tue, Apr 25, 2017 at 10:50 AM, Tom Kerekes tk@... [DynoMotion] <DynoMotion@yahoogroups.com> wrote:
 
[Attachment(s) from Tom Kerekes included below]

Hi SJH,

I would think it would be simpler and possibly better to just wait until the axis was close to the target.

But an independent move uses an S curve for acceleration and deceleration involving 7 "Trip States" or 3rd order functions.  The attached example will display the current Trip State of the trajectory for an axis:

TripState = 0  + Jerk
TripState = 1  constant Acceleration
TripState = 2  - Jerk
TripState = 3  constant velocity
TripState = 4  - Jerk
TripState = 5  constant Deceleration
TripState = 6  + Jerk
TripState = 7  Hold Position
TripState = 8  Null/Idle/Complete

Not all Trip States will always be used.

HTH
Regards
TK


On 4/25/2017 9:40 AM, Hardy Family hardy.woodland.cypress@gmail. com [DynoMotion] wrote:
 
Hi Tom,

When we program our tool changer movements, we use Move() calls and wait for them to be done using CheckDone() for each axis.  In many cases, however, we don't need to stop at that exact point, and would prefer to issue the next destination before waiting for the full stop, since it doesn't matter if the corners are rounded.

So it would be nice to be able to wait for the deceleration phase to start, rather than completion of the entire move.  Then it would be easier to program a motion that passes near a given way-point, but doesn't stop there.

Is there a reliable way of determining when an axis is on the deceleration phase of a Move()?

Regards,
SJH